package org.fog.json.make;

import org.fog.json.exception.JsonRelationException;
import org.fog.json.exception.JsonTypeException;
import org.fog.json.map.JsonMapBody;

/**
 * User: 缪凯
 * Date: 12-2-9
 * Time: 上午10:18
 */
public interface JsonCube extends java.io.Serializable{
    /**
     * 连接两个cube
     * @param cube 追加的cube
     * @throws JsonRelationException 当连接的cube与被连接的cube不存在连接关系是抛出 JsonTypeException 异常
     */
    public void joinCube(JsonCube cube) throws JsonRelationException;

    public JsonMapBody getMap();

    public <T> T getObjectValue(String fName);

    public void setObjectVS(String fName , String value) throws JsonTypeException;

    public String getObjectVS(String fName) throws JsonTypeException;

    public <T> T getArrayValue(String fName , int index);

    public void setArrayVS(String fName , String value , int index) throws JsonTypeException;

    public String getArrayVS(String fName , int index) throws JsonTypeException;
}
